package com.ruoyi.develop.finance.financeBuyInvoice.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.develop.finance.financeBuyInvoiceStoreRel.domain.FinanceBuyInvoiceStoreRel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 采购发票对象 finance_buy_invoice
 *
 * @author lmm
 * @date 2025-07-24
 */
public class FinanceBuyInvoice extends BaseEntity {
private static final long serialVersionUID=1L;

    /** 主键 */
    private String id;

    /** 编号 */
    private String nos;

    /** 发票编号 */
    @Excel(name = "发票编号")
    private String invoiceCode;

    /** 发票文件 */
    @Excel(name = "发票文件")
    private String invoiceFile;

    /** 总金额 */
    @Excel(name = "总金额")
    private BigDecimal totalAmount;


    /** 税额 */
    @Excel(name = "税额")
    private BigDecimal taxAmount;


    /** 不含税额 */
    @Excel(name = "不含税额")
    private BigDecimal noTaxAmount;


    /** 开票时间 */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    @Excel(name = "开票时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invoiceDate;

    /** 供应商id */
    @Excel(name = "供应商id")
    private String supplierId;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    private String supplierName;

    /** 状态 */
    private String status;

    /** 审核意见 */
    private String assessOpinion;

    /** 审核时间 */
    private Date assessTime;

    /** 审核人 */
    private String assessBy;

    /** 发票 和 入库产品关系表 */
    private List<FinanceBuyInvoiceStoreRel> invoiceRukuRelList;

    public String getAssessOpinion() {
        return assessOpinion;
    }

    public void setAssessOpinion(String assessOpinion) {
        this.assessOpinion = assessOpinion;
    }

    public Date getAssessTime() {
        return assessTime;
    }

    public void setAssessTime(Date assessTime) {
        this.assessTime = assessTime;
    }

    public String getAssessBy() {
        return assessBy;
    }

    public void setAssessBy(String assessBy) {
        this.assessBy = assessBy;
    }

    /** 删除标志 */
    private String delFlag;

    public String getStatus() {
        return status;
    }

    public String getNos() {
        return nos;
    }

    public void setNos(String nos) {
        this.nos = nos;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public List<FinanceBuyInvoiceStoreRel> getInvoiceRukuRelList() {
        return invoiceRukuRelList;
    }

    public void setInvoiceRukuRelList(List<FinanceBuyInvoiceStoreRel> invoiceRukuRelList) {
        this.invoiceRukuRelList = invoiceRukuRelList;
    }

    public void setId(String id)
            {
            this.id = id;
            }

    public String getId()
            {
            return id;
            }
    public void setInvoiceCode(String invoiceCode)
            {
            this.invoiceCode = invoiceCode;
            }

    public String getInvoiceCode()
            {
            return invoiceCode;
            }
    public void setInvoiceFile(String invoiceFile)
            {
            this.invoiceFile = invoiceFile;
            }

    public String getInvoiceFile()
            {
            return invoiceFile;
            }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTaxAmount() {
        return taxAmount;
    }

    public void setTaxAmount(BigDecimal taxAmount) {
        this.taxAmount = taxAmount;
    }

    public BigDecimal getNoTaxAmount() {
        return noTaxAmount;
    }

    public void setNoTaxAmount(BigDecimal noTaxAmount) {
        this.noTaxAmount = noTaxAmount;
    }

    public void setInvoiceDate(Date invoiceDate)
            {
            this.invoiceDate = invoiceDate;
            }

    public Date getInvoiceDate()
            {
            return invoiceDate;
            }
    public void setSupplierId(String supplierId)
            {
            this.supplierId = supplierId;
            }

    public String getSupplierId()
            {
            return supplierId;
            }
    public void setSupplierName(String supplierName)
            {
            this.supplierName = supplierName;
            }

    public String getSupplierName()
            {
            return supplierName;
            }
    public void setDelFlag(String delFlag)
            {
            this.delFlag = delFlag;
            }

    public String getDelFlag()
            {
            return delFlag;
            }

    @Override
    public String toString(){
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id",getId())
            .append("invoiceCode",getInvoiceCode())
            .append("invoiceFile",getInvoiceFile())
            .append("invoiceDate",getInvoiceDate())
            .append("supplierId",getSupplierId())
            .append("supplierName",getSupplierName())
            .append("createBy",getCreateBy())
            .append("createTime",getCreateTime())
            .append("updateBy",getUpdateBy())
            .append("updateTime",getUpdateTime())
            .append("delFlag",getDelFlag())
        .toString();
    }
}
